package gti310.tp4;

import java.util.ArrayList;

/**
 * La classe DCPM effectue le traitement des coefficient DC qui consiste à 
 * prendre le premier coefficient de chaque bloc et soustraire le précédent au
 * suivant.
 * 
 * @author Émile Robinson
 * @date 2014-12-06
 *
 */
public class dpcm {
	
	private ListeComposant liste;
	
	public dpcm(ListeComposant liste){
		this.liste = liste;
	}
	
	/**
	 * Récupération et renvoi de la liste des coefficients DC de l'image
	 * 
	 * @return la liste des coefficient DC
	 */
	public ArrayList<double[]> process(){				
		ArrayList<double[]> coeffComponent = new ArrayList<double[]>();
		ArrayList<double[]> coeffModif = new ArrayList<double[]>();
		
		for(int i=0;i<liste.getTaille();i++){
			
			double[] listeCoeff = new double[1024];
			
			for(int j=0;j<liste.getComponent(i).size();j++){
				double valeur = liste.getComponent(i).get(j)[0][0];
				listeCoeff[j] = valeur;	
			}			
			coeffComponent.add(listeCoeff);
		}		
		
		for(int i=0;i<coeffComponent.size();i++){
			double[] temp = new double[1024];
			temp[0] = coeffComponent.get(i)[0];
			
			for(int j=1;j<coeffComponent.get(i).length;j++){
				temp[j] = Math.round(coeffComponent.get(i)[j] - coeffComponent.get(i)[j-1]);
			}			
			coeffModif.add(temp);
		}		
		
		return coeffModif;
	}
	
	public void inverseProcess(ArrayList<double[]> coeffModif){										
	}


}